5
תגובות
<?php
function ChangeValueFile($var,$replace,$path)
{
$file_arr = file($path);
foreach ($file_arr as $line_num => $line) {
$value_var = explode($var.'=',trim($line));
if (preg_match("#$var#",$line)){
//echo $var;
//return $value_var = str_replace($value_var[1],'"'.$replace.'"',$line);
$fileContent = file_get_contents($path);
//echo $fileContent;
$value_var = str_replace($value_var[1],'"'.$replace.'"',$fileContent);
if (file_put_contents($path, $value_var)) return 1;
die();
}else{return "Not Found variables.";}
}
}
ChangeValueFile("name","sadasd",'includes/config.ini');
$ini_array = parse_ini_file('includes/config.ini', true);
print_r($ini_array);
?>
function ChangeValueFile($var,$replace,$path)
{
$file_arr = file($path);
foreach ($file_arr as $line_num => $line) {
$value_var = explode($var.'=',trim($line));
if (preg_match("#$var#",$line)){
//echo $var;
//return $value_var = str_replace($value_var[1],'"'.$replace.'"',$line);
$fileContent = file_get_contents($path);
//echo $fileContent;
$value_var = str_replace($value_var[1],'"'.$replace.'"',$fileContent);
if (file_put_contents($path, $value_var)) return 1;
die();
}else{return "Not Found variables.";}
}
}
ChangeValueFile("name","sadasd",'includes/config.ini');
$ini_array = parse_ini_file('includes/config.ini', true);
print_r($ini_array);
?>
אני מנסה כבר יומיים ליצור פונקצייה שמחפש שורה עם המילה נגיד name ותחליף את הערך שלו ותכניס את זה לקובץ בלי שיפגע שאר הטקסט.
בבקשה עזרה !
5 תשובות
ענה
iiddaannyy
ב
02 ליולי 2012
#
לא הבנתי מה אתה מנסה.
תן דוגמה לקלט ולמה שהוא צריך להפוך בסופו של דבר.
נגיד יש בקובץ דבר כזה:
; This is a sample configuration file
; Comments start with ';', as in php.ini
[first_section]
one = 1
five = 5
animal = BIRD
[second_section]
path = "/usr/local/bin"
URL = "http://www.example.com/~username"
; Comments start with ';', as in php.ini
[first_section]
one = 1
five = 5
animal = BIRD
[second_section]
path = "/usr/local/bin"
URL = "http://www.example.com/~username"
ואני רוצה לשנות את הערך של path בלי שיפגע כל הקובץ.
ככל הנראה, אתה רוצה לשנות את הערך של המפתח (כמו path) על-פי מיקומו בסקציה (second/first_section). לכן קודם כל אתה צריך לבנות פונקציה מנוגדת לפונקציה parse_ini_file שיש ב-php. אתה צריך פונקציה שתהפוך את המערך לקובץ ini בחזרה. כל הגישה שלך עכשיו לא נכונה. בקובץ ini יש חלקים שונים, ומה שאתה מנסה לעשות כרגע - מסובך ולא כ"כ אוניברסלי.
ענה
iiddaannyy
ב
02 ליולי 2012
#
בדיוק, תשתמש ב-parse_ini_file. זה הופך את העניין לפשוט יותר.
תהפוך עם הפונקציה את הקובץ למערך, תבצע את השינוי שאתה צריך במערך וממערך תחזיר את השינויים לסטרינג ותכתוב אותו לקובץ.